Articles

Affichage des articles associés au libellé Reverse Engineering

Techniques d'anti-debugg communes

Image
La plupart des malwares implémentent des mécanismes d'anti-debug. Cela à pour conséquence de crasher le malware lorsque celui-ci détecte qu'il est en train d'être analysé. Il existe plusieurs techniques d'anti-debug, mais les plus communes et classiques sont les suivantes. Vérification de la présence de breakpoints Lorsque l'on positionne un breakpoint dans le débuggeur, on insert dans le code une instruction spécifique au breakpoint. Cette instruction lève une interruption et le CPU se met en pause (en réalité, il sauvegarde son état (adresse, mémoire...) puis s'arrête, mais ne termine pas le programme). Breakpoint logiciel : int 3 Il s'agit tout simplement de l'instruction correspondant au breakpoint (0xCC en hexadécimal). On peut la rencontrer aussi sous forme d'une valeur xorée (0xCC ^ 0x99, 0xCC ^ 0x55…) afin d'éviter d'être repérée. Breakpoint matériel (hardware) Le but ici est de vérifier la présence des registres de d...